﻿// HSS.Interlink.FileQueryCommand.cs
// ----------------------------------------------------------------------------
// Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.html)
// ----------------------------------------------------------------------------
// HighSpeed-Solutions, LLC
// Copyright (c) 2001-2012
// ----------------------------------------------------------------------------
// File:       FileQueryCommand.cs
// Author:     HSS\gbanta
// Created:    07/16/2011
// Modified:   07/22/2011
// ----------------------------------------------------------------------------
namespace HSS.Interlink
{
	#region FileQueryCommand
	/// <summary>
	/// The available Query Commands
	/// </summary>
	internal enum FileQueryCommand
	{
		/// <summary>
		/// This is a POST command and will contain any Metadata associated with
		/// the file Upload/Download request, such as a folder id or file
		/// description or additional processing instructions and is for internal
		/// use only.
		/// </summary>
		Prepare,
		/// <summary>
		/// This is a GET command and is called by an Upload request to
		/// ensure the file about to be uploaded doesn't already exist and
		/// is OK to begin the upload process.
		/// </summary>
		CheckFileExists,
		/// <summary>
		/// This is a GET command and is called to indicate a file is about to
		/// be uploaded and the UploadHandler should create a new empty file or
		/// a new record in a database, to receive the file contents.
		/// </summary>
		NewFile,
		/// <summary>
		/// This is a POST command and is called one or more times to deliver
		/// chunks of data.
		/// </summary>
		Append,
		/// <summary>
		/// This is GET command and is called to cancel the current upload request
		/// and where any temp files should be deleted and optionally any 
		/// previous chunks should be deleted or removed if stored in a Database.
		/// </summary>
		CancelUpload,
		/// <summary>
		/// This is a GET command and is called to indicate the upload request has been
		/// completely processed and is where any temp files should be deleted.
		/// </summary>
		UploadComplete,
		/// <summary>
		/// The is a GET command and is called for a Download request for a 
		/// single file.
		/// </summary>
		GetSingleFile,
		/// <summary>
		/// The is a GET command and is called for a Download request for
		/// multiple files.
		/// </summary>
		GetMultipleFiles,
		/// <summary>
		/// The is a GET command and is called to open a file directly in the browser.
		/// </summary>
		OpenFileInline,
		/// <summary>
		/// The is a GET command and is called to open a file directly in the browser as an attachment.
		/// </summary>
		OpenFileAsAttachment
	}
	#endregion
}